//1.引入mysql模块
const mysql = require('mysql')

//2.创建连接池
const pool = mysql.createPool({
    host: 'localhost',
    user: 'root',
    password: '123456',
    port: '3306',
    database: 'demo',
    connectionLimit: 10,
    timezone: 'utc'
})

//3.导出操作数据库的标准方法
module.exports = function (sql, params) {

    //3.1返回一个Promise对象
    return new Promise((resolve, reject) => {

        //3.2从连接池中取得一个连接
        pool.getConnection((err, PoolConnection) => {
            if (err) {
                console.error(err);
                reject(err)
            } else {
                //没有错误，正常取得了连接
                //使用这个连接来操作数据库
                PoolConnection.query(sql, params, (err, result) => {
                    //查询完成后，优先释放连接到连接池
                    PoolConnection.release()
                    //判断是否出错
                    if (err) {
                        console.error(err);
                        reject(err)
                    } else {
                        //查询成功
                        resolve(result)
                    }
                })
            }
        })
    })

}